/**
 * 强制类型转换: 自动类型提升的逆运算
 * 	需要用到强转符()
 * 	可能出现精度损失
 */ 
class VariableTest3{
	public static void main(String[] argv){
		double d1 = 12.3;
		//int i1 = d1;//编译不通过
		int i1 = (int)d1;//会截断,小数点不要,只要整数部分 损失精度
		System.out.println(i1);	
		
		int i2 = 128;
		byte b = (byte)i2;
		System.out.println(b);//-128 损失精度

		//编码情况1
		long l = 12313;//这个12313后面没有L是int类型属于自动类型提升了,所以每报错
		System.out.println(l);

		//long l1 = 123433454545;//编译不通过 超过了int类型
		long l1 = 123433454545L;

		//float f1 = 12.3;//编译不通过 因为12.3此时是double类型 所以float类型必须要在后面要加上f或F
		float f1 = 12.3F;

		//编码情况2
		//整型常量默认类型是int
		//对于浮点常量默认类型是double
		byte b1 = 12;
		//byte b1 = b1 + 1;//编译不通过 这个1是int类型的常量,所以会报错 
		//float f2 = b1 + 12.3;//编译不通过 这个12.3是double类型的常量,所以会报错
	}
}
